/**
 * 游戏主控制
 */
const Game = {
    // 游戏状态
    isRunning: false,
    currentYear: 0,
    updateInterval: null,
    
    /**
     * 初始化游戏
     */
    initialize() {
        console.log("初始化游戏...");
        
        // 初始化游戏数据
        GameData.initialize();
        
        // 初始化地图渲染
        MapRenderer.initialize();
        
        // 初始化UI
        UI.initialize();
        
        // 添加初始日志
        Utils.addLogEntry("欢迎来到《失落大陆》，一个奇幻王国发展模拟器！", 'positive');
        Utils.addLogEntry(`当前位面：第${GameData.gameState.currentPlane}位面，魔王名称：${GameData.boss.name}`, 'normal');
        Utils.addLogEntry("5个随机种族已在大陆上建立王国，你的任务是引导他们发展并击败100年后降临的魔王。", 'normal');
        
        console.log("游戏初始化完成");
    },
    
    /**
     * 开始游戏
     */
    start() {
        if (!this.isRunning) {
            this.isRunning = true;
            this.setSpeed(CONFIG.GAME_SPEED.SLOW);
            console.log("游戏开始");
        }
    },
    
    /**
     * 暂停游戏
     */
    pause() {
        if (this.isRunning) {
            this.isRunning = false;
            this.clearUpdateInterval();
            GameData.gameState.gameSpeed = CONFIG.GAME_SPEED.PAUSED;
            console.log("游戏暂停");
        }
    },
    
    /**
     * 设置游戏速度
     * @param {number} speed - 游戏速度（年/秒）
     */
    setSpeed(speed) {
        // 清除现有的更新间隔
        this.clearUpdateInterval();
        
        // 更新游戏状态
        GameData.gameState.gameSpeed = speed;
        
        // 如果速度为0，则暂停游戏
        if (speed === CONFIG.GAME_SPEED.PAUSED) {
            this.isRunning = false;
        } else {
            this.isRunning = true;
            this.updateInterval = setInterval(() => this.update(), speed);
        }
        
        // 更新UI
        UI.updateGameInfo();
        
        console.log(`游戏速度设置为: ${speed === CONFIG.GAME_SPEED.PAUSED ? '暂停' : speed + 'ms/年'}`);
    },
    
    /**
     * 清除更新间隔
     */
    clearUpdateInterval() {
        if (this.updateInterval) {
            clearInterval(this.updateInterval);
            this.updateInterval = null;
        }
    },
    
    /**
     * 游戏更新（每年执行一次）
     */
    update() {
        // 增加年份
        GameData.gameState.currentYear++;
        this.currentYear = GameData.gameState.currentYear;
        console.log(`[年份更新] 当前年份: ${this.currentYear}`);
        
        // 更新王国
        KingdomSystem.updateKingdoms();
        
        // 更新NPC
        NPCSystem.updateNPCs();
        
        // 处理随机事件
        EventSystem.processRandomEvents();
        
        // 处理持续效果
        EventSystem.processEffects();
        
        // 更新UI
        UI.updateGameInfo();
        UI.updateResourcesOverview();
        
        // 更新地图
        MapRenderer.render();
        
        // 自动存档
        if (this.currentYear % 10 === 0) {
            GameData.saveGameState('auto');
        }
    },
    
    /**
     * 重新开始游戏
     */
    restart() {
        // 暂停当前游戏
        this.pause();
        
        // 重新初始化
        this.initialize();
        
        console.log("游戏重新开始");
    }
};

// 当页面加载完成后初始化游戏
document.addEventListener('DOMContentLoaded', () => {
    Game.initialize();
});